fn shortest_path_with_edges<'s, 'v>(
    route: &[&'v Vertex<'s, 'v>]
) -> Vec<(Edge, &'v Vertex<'s, 'v>)>