<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def match (self, property_set_, debug):
 """ Returns the alternative condition for this alternative, if the condition is satisfied by 'property_set'. """

        # The condition is composed of all base non-conditional properties.
        # It's not clear if we should expand 'self.requirements_' or not.
        # For one thing, it would be nice to be able to put
        #    <toolset>msvc-6.0
        # in requirements.
        # On the other hand, if we have <variant>release in condition it
        # does not make sense to require <optimization>full to be in
        # build request just to select this variant.
        assert isinstance(property_set_, property_set.PropertySet)
        bcondition = self.requirements_.base ()
        ccondition = self.requirements_.conditional ()
        condition = b2.util.set.difference (bcondition, ccondition)

        if debug:
            print "    next alternative: required properties:", [str(p) for p in condition]

        if b2.util.set.contains (condition, property_set_.all()):

            if debug:
                print "        matched"

            return condition

        else:
            return None