Stephan Kulow
(of KDE fame) complained that Freecell Solver generated some extremely
long solutions, which just moved sequences from one stack to the the other.
I suggested to use a Breadth-First Search scan restricted to the states
that were found in the solution path to try to eliminate redundant moves.
This turned out to be quite beneficial in most cases.
I later on implemented a scheme in which each state stored a pointer
to its "parent" state (the state from which it was initially discovered).
and used back-tracking to trace the solution down there.
This turned out to optimize solutions as well, but the BrFS optimization
improved it a bit too sometimes.