find shortest path in graph