Find and return all dump names required (by dependancies) for a given
        dump names list

        Beware, the returned name list does not respect order, you should only
        use it when walking throught the "original" dict builded by OrderedDict

def get_dump_names(self, names, dumps=None):
        """
        Find and return all dump names required (by dependancies) for a given
        dump names list

        Beware, the returned name list does not respect order, you should only
        use it when walking throught the "original" dict builded by OrderedDict
        """
        # Default value for dumps argument is an empty set (setting directly
        # as a python argument would result as a shared value between
        # instances)
        if dumps is None:
            dumps = set([])

        # Add name to the dumps and find its dependancies
        for item in names:
            if item not in self:
                if not self.silent_key_error:
                    raise KeyError("Dump name '{0}' is unknowed".format(item))
                else:
                    continue

            dumps.add(item)

            # Add dependancies names to the dumps
            deps = self.__getitem__(item).get('dependancies', [])
            dumps.update(deps)

        # Avoid maximum recursion when we allready find all dependancies
        if names == dumps:
            return dumps

        # Seems we don't have finded other dependancies yet, recurse to do it
        return self.get_dump_names(dumps.copy(), dumps)