private void RemoveUnreachableBlocks() { var root = graph.Roots().Single(v => v.IsSpecialBlock); var reachableBlocks = graph.ReachableBlocks(root); var unreachableBlocks = graph.Vertices.Except(reachableBlocks).ToList(); foreach (var unreachableBlock in unreachableBlocks) { graph.RemoveVertex(unreachableBlock); } }