private bool OutputPath(Output result, DependencyGraph graph, Library source, Library target) { var tryGetPaths = graph.ShortestPathsDijkstra(e => 1, source); IEnumerable<Dependency> path; if (!tryGetPaths(target, out path)) return false; try { result.AppendLine("Path between {0} and {1}:", GetName(source), GetName(target)); result.IncreaseIndent(); Output.LineOutput line = result.StartLine(); line.Append(GetName(source)); foreach (Dependency edge in path) line.Append(" -> ") .Append(GetName(edge.Target)); line.EndLine(); } finally { result.DecreaseIndent(); result.AppendLine(); } return true; }