Mirror, Mirror, in the Code Two-dimensional programming languages often have mirror commands like / and \ to redirect the instruction pointer on the grid:
&gt;&gt;&gt;&gt;\
    v
    v
&lt;&lt;&lt;&lt;/

In this challenge, you're given an incoming direction and a mirror and you need to determine the outgoing direction.
Rules
The incoming direction will be given as one of the characters NESW and the mirror will be given as either / or \. You may receive these in any order. You must use uppercase letters.
You may take input in any convenient format, including a two-character string, a string using some separator between the characters, a pair of characters in a list, or even a pair of singleton strings. If you do use a string with separator, the separator cannot use any of the characters NWSE\/.
Output should be a character from NESW or single-character string.
You may write a program or a function and use any of the our standard methods of receiving input and providing output.
You may use any programming language, but note that these loopholes are forbidden by default.
This is code-golf, so the shortest valid answer – measured in bytes – wins.
Test Cases
There are only 8 possible inputs you need to handle, so there is no excuse for not testing your code on all of them:
N /   --&gt;   W
N \   --&gt;   E
E /   --&gt;   S
E \   --&gt;   N
S /   --&gt;   E
S \   --&gt;   W
W /   --&gt;   N
W \   --&gt;   S
Python, 40 38 bytes
-2 bytes thanks to @MitchSchwartz (ord(d)+ord(m))%8 -&gt; ord(d)+ord(m)&amp;7

lambda d,m:' NESSWNW'[ord(d)+ord(m)&amp;7]

plain lookup of answer in a list (AKA string) indexed by the smallest mod of the sum of ordinals that works.
Test cases are on ideone