def route(self, slave_ids=None, function_codes=None, addresses=None):
def inner(f):<EOL><INDENT>self.route_map.add_rule(f, slave_ids, function_codes, addresses)<EOL>return f<EOL><DEDENT>return inner<EOL>
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])

    :param slave_ids: A list or set with slave id's.
    :param function_codes: A list or set with function codes.
    :param addresses: A list or set with addresses.