public static void BuildConnectedOutSubGraph <TVertex, TEdge>(
            this IVertexAndEdgeListGraph <TVertex, TEdge> graph,
            IMutableVertexAndEdgeListGraph <TVertex, TEdge> subGraph,
            IEnumerable <TVertex> entries,
            Func <TVertex, TVertex, TEdge> edgeFactory)
            where TEdge : IEdge <TVertex>
        {
            var reachable   = graph.FindReachable(entries);
            var neededEdges = graph.GetAllEdges(reachable).ToList();

            subGraph.AddVerticesAndEdgeRange(neededEdges);
        }