<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def multibind(self, interface, to, scope=None):
 """Creates or extends a multi-binding. A multi-binding maps from a key to a sequence, where each element in the sequence is provided separately. :param interface: :func:`MappingKey` or :func:`SequenceKey` to bind to. :param to: Instance, class to bind to, or an explicit :class:`Provider` subclass. Must provide a sequence. :param scope: Optional Scope in which to bind. """

        key = BindingKey.create(interface)
        if key not in self._bindings:
            if isinstance(interface, dict) or isinstance(interface, type) and issubclass(interface, dict):
                provider = MapBindProvider()
            else:
                provider = MultiBindProvider()
            binding = self.create_binding(interface, provider, scope)
            self._bindings[key] = binding
        else:
            binding = self._bindings[key]
            provider = binding.provider
            assert isinstance(provider, ListOfProviders)
        provider.append(self.provider_for(key.interface, to))