'Called before matching and building to keep the compiled rules
in the correct order after things changed.'

def update(self):

    if (not self._remap):
        return
    with self._remap_lock:
        if (not self._remap):
            return
        self._rules.sort(key=(lambda x: x.match_compare_key()))
        for rules in itervalues(self._rules_by_endpoint):
            rules.sort(key=(lambda x: x.build_compare_key()))
        self._remap = False
