or object
  passed in. Therefore you may want the visitor to hold this state by
  pointer or reference.
  
<p><a name="3">[3]</a> 
  The algorithm will not work correctly if any of the edge weights are equal to infinity since the infinite distance value is used to determine if a vertex has been discovered.
  
<p><a name="4">[4]</a> 
  Calls to the visitor events occur in the same order as <tt>dijkstra_shortest_paths</tt> (i.e. <i>discover_vertex(u)</i> will always be called after <i>examine_vertex(u)</i> fo