Provides a set of algorithms for computing the shortest path between two nodes or between each pair of nodes in a graph. Depending on the properties of the graph will determine which algorithm to use.