def METHOD_NAME(self, name: Optional[str] = None) -> Tuple[ModuleType, str]:
    """
    Load and return collection module identified by ``name``.
    This method requires a working implementation of `.find` in order to
    function.
    In addition to importing the named module, it will add the module's
    parent directory to the front of `sys.path` to provide normal Python
    import behavior (i.e. so the loaded module may load local-to-it modules
    or packages.)
    :returns:
        Two-tuple of ``(module, directory)`` where ``module`` is the
        collection-containing Python module object, and ``directory`` is
        the string path to the directory the module was found in.
    .. versionadded:: 1.0
    """
    if name is None:
        name = self.config.tasks.collection_name
    spec = self.find(name)
    if spec and spec.loader and spec.origin:
        # Typically either tasks.py or tasks/__init__.py
        source_file = Path(spec.origin)
        # Will be 'the dir tasks.py is in', or 'tasks/', in both cases this
        # is what wants to be in sys.path for "from . import sibling"
        enclosing_dir = source_file.parent
        # Will be "the directory above the spot that 'import tasks' found",
        # namely the parent of "your task tree", i.e. "where project level
        # config files are looked for". So, same as enclosing_dir for
        # tasks.py, but one more level up for tasks/__init__.py...
        module_parent = enclosing_dir
        if spec.parent:  # it's a package, so we have to go up again
            module_parent = module_parent.parent
        # Get the enclosing dir on the path
        enclosing_str = str(enclosing_dir)
        if enclosing_str not in sys.path:
            sys.path.insert(0, enclosing_str)
        # Actual import
        module = module_from_spec(spec)
        sys.modules[spec.name] = module  # so 'from . import xxx' works
        spec.loader.exec_module(module)
        # Return the module and the folder it was found in
        return module, str(module_parent)
    msg = "ImportError loading {!r}, raising ImportError"
    debug(msg.format(name))
    raise ImportError