Rolling the Dice
So, I was rolling dice a while ago and thought of a challenge.
Given the cube with a net taken from input and a list of moves, find the square on the bottom at the end.
I will use this image for the examples here.
You take in a string with a list of moves. The string contains only the capital ASCII letters N, S, W, and E. These correspond to rolling the cube one step into that direction.
In the picture, one N would make the bottom face a 6. In this image, North is away from the camera, South is towards, East is right, and West is left.
You also take in a string in the following format: 1P 2P 3P 4P 5P 6P, where each P is a position from N, S, W, E, T, and B. T & B are bottom and top.
The numbers are the face with that number, and the letter represents the position the face is in. In case it isn't clear, the net will always be ordered by the number, so 1P 2P 3P 4P 5P 6P, never 2B 1T 3N 4S 5W 6E.
The position in the image is 1S 2B 3E 4W 5T 6N.
Your program should output a number representing the bottom side.
(nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> 6 NS, 1S 2B 3E 4W 5T 6N -> 2 NWS, 1S 2B 3E 4W 5T 6N -> 2 NWSNWS, 1S 2B 3E 4W 5T 6N -> 2 NWSS, 1S 2B 3E 4W 5T 6N -> 3 NNNNNN, 1S 2B 3E 4W 5T 6N -> 5 SNWEEWS, 1N 2T 3E 4W 5B 6S, 6 SNEEWS, 1N 2T 3W 4S 5B 6E, 4
You may also assume the cube is on a infinite flat plane, probably with some sort of friction.
Standard loopholes disallowed, even though I can't find any.
For invalid input, your code may do anything except start the apocalypse.
Because this program should fit on my dice, it should be as small as possible. I count in bytes, with some exceptions for languages like Folders.