def can_remove(self):
if self.children.count() == <NUM_LIT:0>:<EOL><INDENT>return True<EOL><DEDENT>ancestors = set(self.ancestors_root())<EOL>children = set(self.children.all())<EOL>return children.issubset(ancestors)<EOL>
Returns True if it is legal to remove this node and still leave the
        graph as a single connected entity, not splitting it into a forest.
        Only nodes with no children or those who cause a cycle can be deleted.