Add a wrapper to the chain.  Any extra positional or keyword
        arguments will be passed to that wrapper through construction
        of a ``TendrilPartial``.  For convenience, returns the
        WrapperChain object, allowing ``chain()`` to be called on the
        return result to register multiple wrappers.

def chain(self, wrapper, *args, **kwargs):
        """
        Add a wrapper to the chain.  Any extra positional or keyword
        arguments will be passed to that wrapper through construction
        of a ``TendrilPartial``.  For convenience, returns the
        WrapperChain object, allowing ``chain()`` to be called on the
        return result to register multiple wrappers.
        """

        if args or kwargs:
            wrapper = TendrilPartial(wrapper, *args, **kwargs)

        self._wrappers.append(wrapper)

        # For convenience...
        return self