I'm working on an Header-Only library in C++ for a comprehensive work on Graph.
It includes and will include advanced graph algorithms and partitioning algorithms, with well structured data representation.
I can give you the mathematical definition of the problem.
Let G be the set of nodes in a graph and n be a given node in that set. Let C be the non-strict subset of G containing both n and all nodes reachable from n, and let C' be its complement. There's a third set M, which is the non-strict subset of C containing all nodes that are reachable from any node in C'.
The problem consists of finding all nodes that belong to C but not to M.
The reason why this problem is relevant is because it's used in garbage collection systems to decide which other objects need to be released, given that one object is about to be released.