code: def filter_all_reachable_leaves(self, identifier_filter, language, forbidden_identifiers=None):
          
          return self.filter_all_reachable_leaves_many([identifier_filter], language, forbidden_identifiers=forbidden_identifiers)[0]
docs: Get all leaves corresponding to the given filter:
  
          * the filter is a list of lists;
          * each of the inner list carries identifiers;
          * for each identifier, we find an item and all its reachable leaf items;
          * within the inner list we union the reachable items;
          * with the outer list we intersect the reachable items;
          * when an identifier starts with the prfix '-', we find its reachable
            leaf items and then complement them
  
          Example::
  
                  A
                 / \\
                B   C
               / \ / \\
              D   E   F
  
              [[A], [C]] ----> [D, F]
              [[B], [C]] ----> [E]
              [[B], [-C]] ---> [D]
              [[A], [-D], [-F]] ---> [E]
              [[-C]] ---> []
  
          Args::
              identifier_filter (list): list of lists of identifiers (some of them
                  can start with the prefix '-')
              language (str): language used for further filtering (some objects
                  for different languages share the same item
  
          Returns:
              list: list of item ids