Changelog:

1. Added the ability to take generic values for Graph, Edge, Node
2. Added a NodeWrapper (in the future it will contain minDistance and previous for use in Graph Algorithms)