def METHOD_NAME(dataset, extra_facets_dir):
    """Read configuration files with additional variable information."""
    project_details = _load_extra_facets(
        dataset.facets['project'],
        extra_facets_dir,
    )
    def pattern_filter(patterns, name):
        """Get the subset of the list `patterns` that `name` matches.
        Parameters
        ----------
        patterns : :obj:`list` of :obj:`str`
            A list of strings that may contain shell-style wildcards.
        name : str
            A string describing the dataset, mip, or short_name.
        Returns
        -------
        :obj:`list` of :obj:`str`
            The subset of patterns that `name` matches.
        """
        return [pat for pat in patterns if fnmatch.fnmatchcase(name, pat)]
    extra_facets = {}
    for dataset_ in pattern_filter(project_details, dataset['dataset']):
        for mip_ in pattern_filter(project_details[dataset_], dataset['mip']):
            for var in pattern_filter(project_details[dataset_][mip_],
                                      dataset['short_name']):
                facets = project_details[dataset_][mip_][var]
                extra_facets.update(facets)
    return extra_facets