'Say if this instance matches (fulfills) a requirement.
:param req: The requirement to match.
:rtype req: str
:return: True if it matches, else False.'

def matches_requirement(self, req):

    r = parse_requirement(req)
    scheme = get_scheme(self.metadata.scheme)
    try:
        matcher = scheme.matcher(r.requirement)
    except UnsupportedVersionError:
        logger.warning(u'could    not    read    version    %r    -    using    name    only', req)
        name = req.split()[0]
        matcher = scheme.matcher(name)
    name = matcher.key
    result = False
    for p in self.provides:
        (p_name, p_ver) = parse_name_and_version(p)
        if (p_name != name):
            continue
        try:
            result = matcher.match(p_ver)
            break
        except UnsupportedVersionError:
            pass
    return result
