def updateArgs(self, *args, **keywords):
        """
        Call as::
            C{I{ClassName}(I{info}, I{filterexp})}
        or::
            C{I{ClassName}(I{info}, exceptions=I{filterexp})}
        where C{I{filterexp}} is either a regular expression or a
        tuple of C{(regexp[, setmodes[, unsetmodes]])}
        """
        if args:
            args = list(args)
            info = args.pop(0)
            if args:
                if not self.included:
                    self.included = {}
                if info not in self.included:
                    self.included[info] = []
                self.included[info].extend(args)
            elif 'exceptions' in keywords:
                # not the usual exception handling, this is an exception
                if not self.excluded:
                    self.excluded = {}
                if info not in self.excluded:
                    self.excluded[info] = []
                self.excluded[info].append(keywords.pop('exceptions'))
            else:
                raise TypeError, 'no paths provided'
        policy.Policy.updateArgs(self, **keywords)