mark: shortest path algos
mark: removing unnecessary code
mark: more unnecessary
mark: tidying up the output of shortest path
mark: trying adjacency matrix to represent graph instead
mark: putting in early exit condition
mark: performance optimisations
mark: adding vector attempt