I added in the route file:
map.show_book \"/show_book/:name/year/:year\", :controller => \"book\", :action => \"show_version\"
I also
Put the optional parts between parenthesis:
map.show_book "/show_book/:name(/year/:year)", :controller => "book", :action => "show_version"
and remove the second route.
Update
The above answer is only for rails 3 and above. Inverting the two routes definitions fixed the problem (see Alessandro's comment below).