Switch to List::MoreUtils::any().

Because it returns a boolean, while List::Util::first returns the evaluated
value, which can be undefined. We need to know there was a match, not the
valiue that matched.
Be less strict with semantic versions.