It is easy to make a Latin square of any size if you have a MOD function.
Make an n x n array called S with rows and columns indexed by 0,1,2,...,n-1.
Fill every element in the array as follows:
S[ i, j ] = mod( i + j, n) + 1
then you will have a Latin square on the symbols 1 to n.
This will produce a different square to the 4 x 4 example above, but it should lead to an alternative balanced assignment to NSEW. It will not have always pair 1 with 4 and 2 with 3, but I don't see that you have made this a requirement. If you have, what patterns are you looking for if there are more than 4 players per pool?