--- from: http://rosettacode.org/wiki/Dijkstra's_algorithm note: Classic CS problems