Step through BFS one step at a time
Extract BFS class with a state machine