code: def get_accessibility_packs(self):
          
          packs = []
          # Add the tag for dfs check
          for node in list(self.nodes.values()):
              node['dfs_loop_status'] = 'DFS_UNCHECKED'
  
          for node_id, node in self.nodes.items():
              # Run the dfs only if the node is not already done */
              if node['dfs_loop_status'] == 'DFS_UNCHECKED':
                  packs.append(self.dfs_get_all_childs(node_id))
  
          # Remove the tag
          for node in list(self.nodes.values()):
              del node['dfs_loop_status']
  
          return packs
docs: Get accessibility packs of the graph:
          in one pack element are related in a way. Between packs, there is no relation at all.
          TODO: Make it work for directional graph too
          Because for now, edge must be father->son AND son->father
  
          :return: packs of nodes
          :rtype: list