could we do the inverse here, by trying `gem` first and falling back on the split of `-` when we have to?