def buildfullreg(self, clist, include_names=True):
        regparts = []
        for part in self.routelist:
            if isinstance(part, dict):
                var = part['name']
                if var == 'controller':
                    partmatch = '|'.join(map(re.escape, clist))
                elif part['type'] == ':':
                    partmatch = self.reqs.get(var) or '[^/]+?'
                elif part['type'] == '.':
                    partmatch = self.reqs.get(var) or '[^/.]+?'
                else:
                    partmatch = self.reqs.get(var) or '.+?'
                if include_names:
                    regpart = '(?P<%s>%s)' % (var, partmatch)
                else:
                    regpart = '(?:%s)' % partmatch
                if part['type'] == '.':
                    regparts.append('(?:\.%s)??' % regpart)
                else:
                    regparts.append(regpart)
            else:
                regparts.append(re.escape(part))
        regexp = ''.join(regparts) + '$'
        return regexp
Build the regexp by iterating through the routelist and
dataset/ETHPy150Open bbangert/routes/routes/route.py/Route.buildfullreg