Augments the given dictionary by using all the bound extensions.

        Args:
            dct: Dictionary to augment.
            document: The document the dictionary was loaded from.

        Returns:
            The augmented dictionary.

def augment(self, dct: NonAugmentedDict,
                document: Optional[YamlDocument] = None) -> AugmentedDict:
        """
        Augments the given dictionary by using all the bound extensions.

        Args:
            dct: Dictionary to augment.
            document: The document the dictionary was loaded from.

        Returns:
            The augmented dictionary.
        """
        Validator.instance_of(dict, raise_ex=True, dct=dct)

        # Apply any configured loader
        for instance in self._extensions:
            nodes = list(dict_find_pattern(dct, **instance.config()))
            for parent, k, val in nodes:
                parent.pop(k)
                fragment = instance.apply(
                    ExtensionContext(
                        mentor=self,
                        document=document or dct,
                        dct=dct,
                        parent_node=parent,
                        node=(k, val)
                    )
                )
                if fragment is not None:
                    parent.update(fragment)

        return dct