def METHOD_NAME(self, slave_ids=None, function_codes=None, addresses=None):
    """ A decorator that is used to register an endpoint for a given
    rule::
        @server.route(slave_ids=[1], function_codes=[1, 2], addresses=list(range(100, 200)))  # NOQA
        def read_single_bit_values(slave_id, address):
            return random.choise([0, 1])
    Any argument can be omitted to match any value.
    :param slave_ids: A list (or iterable) of slave ids.
    :param function_codes: A list (or iterable) of function codes.
    :param addresses: A list (or iterable) of addresses.
    """
    def inner(f):
        self.route_map.add_rule(f, slave_ids, function_codes, addresses)
        return f
    return inner