def dispatch_strict(self, stream, *args, **kwargs):
        """
        Dispatch to function held internally depending upon the value of stream.

        Matching on directories is strict. This means dictionaries will
        match if they are exactly the same.

        """
        for f, pat in self.functions:
            matched, matched_stream = self._match(stream, pat, 
                                                  {'strict': True}, {})
            if matched:
                return f(matched_stream, *args, **kwargs)

        raise DispatchFailed()