'Appends new rules to the router.
:arg rules: a list of Rule instances (or tuples of arguments, which are
passed to Rule constructor).'

def add_rules(self, rules):

    for rule in rules:
        if isinstance(rule, (tuple, list)):
            assert (len(rule) in (2, 3, 4))
            if isinstance(rule[0], basestring_type):
                rule = Rule(PathMatches(rule[0]), *rule[1:])
            else:
                rule = Rule(*rule)
        self.rules.append(self.process_rule(rule))
