Dijkstra's Algorithm, the way to go
Identify the starting node, that's the first step you know
Jot down the distances, keep track with care
Keep updating the shortest, let no node despair
Keep a priority queue, sorted just right
Journey to the next node, the one shining bright
Scan the neighbors, update distances if needed
Repeat this process, until all paths are heeded
Invariant to maintain - current shortest is best
Avoid revisiting nodes, this is the key test
'S why you mark them visited, no more to assess
Keep going til all nodes, this algorithm will bless
Lastly, the final path, you now have in hand
Joyfully declare victory, across the whole land
Krush any cycles, Dijkstra's will detect
Assured shortest routes, you can now project