Use more straightforward Graph.Vertices.Edges field names.
Use internal toposort.