docs: def bound(self, instance):
          """
          Return a new dispatcher, which will switch all command functions
          with bounded methods of given instance matched by name. It will
          match only regular methods.
  
          :param instance: object instance
          :type instance: object
          :return: new Dispatcher
          :rtype: CommandDispatcher
          """
  
          bounded_dispatcher = CommandDispatcher()
          bounded_dispatcher.commands = self.commands.copy()
  
          for name in self.commands:
              method = getattr(instance, name, None)
  
              if method and inspect.ismethod(method) and method.__self__ == instance:
                  bounded_dispatcher.commands[name] = method
  
          return bounded_dispatcher