shortest path, undirected (bidirectional)