Default action used if no compatible action is found.

        Args:
            file_pattern: A :program:`fnmatch` pattern for the files concerned by this action.
            action_function:

        Warning:
            Be careful when defining a default action. This action is be applied to **all** template files for
            which no compatible action is found. You might want to prefer declare explicit actions than to rely on this
            implicit default action. Use at your own risks. That said, if you have lots of default cases, this
            default action can be very convenient and avoid lots of unnecessary action declarations.

def register_default_action(self, file_pattern,  action_function):
        """
        Default action used if no compatible action is found.

        Args:
            file_pattern: A :program:`fnmatch` pattern for the files concerned by this action.
            action_function:

        Warning:
            Be careful when defining a default action. This action is be applied to **all** template files for
            which no compatible action is found. You might want to prefer declare explicit actions than to rely on this
            implicit default action. Use at your own risks. That said, if you have lots of default cases, this
            default action can be very convenient and avoid lots of unnecessary action declarations.
        """
        if self.__default_action is not None:
            self.log_error('Default action function already exist.')

        if not self.__is_function_action(action_function):
            self.log_error('Attached default function is not an action function.')

        self.__default_action = GeneratorAction(file_pattern=file_pattern, action_function=action_function)