Algorithm Details:
(1) Start by inserting an arbitrary starting node's adjacent edges onto the multimap keyed on its edge weight.
(2) Remove the first element from the multimap and add its edge to the minimum spanning tree. Then we process the destination node by adding its adjacent edges onto the multimap, if the edge's destination node is not in the spanning tree and improves the destination node's current distance.
(3) Repeat step (2) until the multimap is empty.