This is invoked on a vertex as it is popped from the queue. This happens immediately before examine_edge() is invoked on each of the out-edges of vertex u.
"Examine" seems to work once on first encounter (is that correct??) so might worth a try.
I did try the code below but I got errors on the part the works with the color map. Any ideas?
class dijkstra_2step : public boost::default_dijkstra_visitor