Several betterments:

Generate moves instead of checking inline
DFS working for most inputs where depth is not excessive
Removed unused functions