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;
        }