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

def filter_all_reachable_leaves(self, identifier_filter, language, forbidden_identifiers=None):
        """
        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
        """
        return self.filter_all_reachable_leaves_many([identifier_filter], language, forbidden_identifiers=forbidden_identifiers)[0]