The graph object to traverse.
The colour map used to control the expansion of edges and verices in the graph. This will be totally re- initialised before the traversal begins.
A visitor object that will be notified of various events during the traversal.
The queue object used to order the expansion of vertices.