Property Finder recursively traverses an iterable object and returns an array of found properties by key name.
$first is an optional parameter, which forces only the first result to be returned.
Thanks to Steve Englert of Sussex Publishers for helping me build this out.