Creates a :class:`Blueprint.cls` and calls each deferred operation.

        :param obj:
            The initialized object with which to call all deferred operations.
        :type obj: object

        :param memo:
            A dictionary to cache registered Blueprints.
        :type memo: dict[Blueprint,T]

        :return:
            The initialized object.
        :rtype: Blueprint.cls | Blueprint

        **--------------------------------------------------------------------**

        Example::

            >>> import schedula as sh
            >>> blue = sh.BlueDispatcher().add_func(len, ['lenght'])
            >>> blue.register()
            <schedula.dispatcher.Dispatcher object at ...>

def register(self, obj=None, memo=None):
        """
        Creates a :class:`Blueprint.cls` and calls each deferred operation.

        :param obj:
            The initialized object with which to call all deferred operations.
        :type obj: object

        :param memo:
            A dictionary to cache registered Blueprints.
        :type memo: dict[Blueprint,T]

        :return:
            The initialized object.
        :rtype: Blueprint.cls | Blueprint

        **--------------------------------------------------------------------**

        Example::

            >>> import schedula as sh
            >>> blue = sh.BlueDispatcher().add_func(len, ['lenght'])
            >>> blue.register()
            <schedula.dispatcher.Dispatcher object at ...>
        """
        if memo and self in memo:
            obj = memo[self]
            if obj is not None:
                return obj
        if obj is None:
            obj = _safe_call(self.cls, *self.args, memo=memo, **self.kwargs)

        for method, kwargs in self.deferred:
            _safe_call(getattr(obj, method), memo=memo, **kwargs)

        if memo is not None:
            memo[self] = obj

        return obj