Rename first-match to idx-first-match for ++descriptivity

While we're at it, refactor to use keep-indexed. It's a much simpler implementation now