def METHOD_NAME(args):
    suffix = store_prefix(args)
    if (not suffix or  # Current alias on stack is resolved
            suffix[0] not in self.aliases or  # End resolving
            suffix[0].startswith('\\')):  # End resolving
        try:
            stack.pop()
            # strip the '\' if it exists
            if suffix[0].startswith('\\'):
                suffix[0] = suffix[0][1:]
        except IndexError:
            pass
        return suffix
    if suffix[0] in stack:  # Infinite recursion detected
        raise dnf.exceptions.Error(
            _('Aliases contain infinite recursion'))
    # Next word must be an alias
    stack.append(suffix[0])
    current_alias_result = METHOD_NAME(self.aliases[suffix[0]])
    if current_alias_result:  # We reached non-alias or '\'
        return current_alias_result + suffix[1:]
    else:  # Need to resolve aliases in the rest
        return METHOD_NAME(suffix[1:])