Fix missing import
Consistently throw OutOfBoundsException for unreachable vertices
Add Algorithm\ShortestPath::hasVertex()

(moved from Algorithm\ShortestPath::BreadthFirst)
Do not return zero weight for root vertex and support root loops
Add tests with 100% coverage for Algorithm\ShortestPath