Allow any arbitrary direction for moving patterns

This PR allows moving patterns in any arbitrary direction rather than just orthogonal to their orientation.