Returns the intersection of the values whose keys are in *args.  If *args is blank, returns the intersection of all values.

def intersection(self, *args):
        '''Returns the intersection of the values whose keys are in *args.  If *args is blank, returns the intersection of all values.
        '''
        values = self.values()
        if args:
            values = [val for key,val in self.items() if key in args]
        return set(reduce(set.intersection, values))