You could create a separate top-level song resource to accomplish
map.resources :artists do |artist|
artist.resources :songs, :name_prefix => 'artist_'
This would create routes for a top-level song resource as well as your
original nested song resource. The top-level song resource will have
the usual route helpers. Because of the :name_prefix option, the route
helpers for the nested song resource will have "artist_" prepended to
their name to prevent them from conflicting with the top-level song
resource, e.g., artist_songs_path(X) => /artists/X/songs.