The graph-based BFS and DFS algorithms were naturally implemented in
the
graph package.
However, state space search tree creation requires the list of problem moves,
so the natural place to implement the new Search algorithm is in
the Problem class of the framework package.
Implementing state space search requires the Vertex
and DequeAdder types from the graph package, but
the Edge and Graph classes are not needed.
For the search algorithm to work on problem states, they must behave like
vertices.