There is a top-down order for how template routes are processed. So what you need to do is create your tomato
route rule, and make sure it is above your regular alpha_dash
rule. I couldn't find a simple solution for ignoring specific segments in a regex rule using the carat and didn't bother testing further; EE would yell at me for using some regex modifiers and such. The other way around was easier. Here's what worked for me in your example.
This is an example of a couple of rules in your My site -> CP Home -> Design -> Template Manager -> Template Route Manager
that works for your exmample:
Group Template Route Segment Req
-------------------------------------------------------------------------
fruit special_fruit /fruit/{fruit:regex[(tomato)]} Yes
fruit regular_fruit /fruit/{fruit:alpha_dash} Yes
This will match /fruit/tomato
to your special_fruit
template. When that doesn't match (say /fruit/apples
), it tries the next rule and will match and render your regular_fruit
template.