Looks like it is actually solving the puzzle (possibly repeatedly)
but it is not tracking the moves correctly.  Also using a cache
would reduce the amount of work substantially.

Added test for apply move.  Not enough, but a start.