pub fn all_cycles(&self) -> impl Iterator<Item = Vec<FeatureId<'g>>> + 'g {
        let dep_graph = self.feature_graph.dep_graph();
        let package_graph = self.feature_graph.package_graph;
        self.sccs.multi_sccs().map(move |class| {
            class
                .iter()
                .map(move |feature_ix| FeatureId::from_node(package_graph, &dep_graph[*feature_ix]))
                .collect()
        })
    }
Returns all the cycles of 2 or more elements in this graph.

Cycles are returned in topological order: if features in cycle B depend on features in cycle
A, A is returned before B.

Within a cycle, nodes are returned in non-dev order: if feature Foo has a dependency on Bar,
and Bar has a dev-dependency on Foo, then Foo is returned before Bar.
guppy/src/graph/feature/cycles.rs