# File lib/merb-core/dispatch/router/behavior.rb, line 350
      def resources(name, options = {})
        namespace = options[:namespace] || merged_params[:namespace]

        next_level = match "/#{name}"

        name_prefix = options.delete :name_prefix
        matched_keys =  options[:keys] ? options.delete(:keys).map{|k| ":#{k}"}.join("/")  : ":id"

        if name_prefix.nil? && !namespace.nil?
          name_prefix = namespace_to_name_prefix namespace
        end

        unless @@parent_resource.empty?
          parent_resource = namespace_to_name_prefix @@parent_resource.join('_')
        end

        options[:controller] ||= merged_params[:controller] || name.to_s

        singular = name.to_s.singularize

        route_plural_name   = "#{name_prefix}#{parent_resource}#{name}"
        route_singular_name = "#{name_prefix}#{parent_resource}#{singular}"

        behaviors = []

        if member = options.delete(:member)
          member.each_pair do |action, methods|
            behaviors << Behavior.new(
            { :path => %r{^/#{matched_keys}[/;]#{action}(\.:format)?$}, :method => /^(#{[methods].flatten * '|'})$/ },
            { :action => action.to_s }, next_level
            )
            next_level.match("/#{matched_keys}/#{action}").to_route.name("#{action}_#{route_singular_name}""#{action}_#{route_singular_name}")
          end
        end

        if collection = options.delete(:collection)
          collection.each_pair do |action, methods|
            behaviors << Behavior.new(
            { :path => %r{^[/;]#{action}(\.:format)?$}, :method => /^(#{[methods].flatten * '|'})$/ },
            { :action => action.to_s }, next_level
            )
            next_level.match("/#{action}").to_route.name("#{action}_#{route_plural_name}""#{action}_#{route_plural_name}")
          end
        end

        routes = many_behaviors_to(behaviors + next_level.send(:resources_behaviors, matched_keys), options)



        # Add names to some routes
        [['', "#{route_plural_name}""#{route_plural_name}"],
        ["/#{matched_keys}", "#{route_singular_name}""#{route_singular_name}"],
        ['/new', "new_#{route_singular_name}""new_#{route_singular_name}"],
        ["/#{matched_keys}/edit", "edit_#{route_singular_name}""edit_#{route_singular_name}"],
        ["/#{matched_keys}/delete", "delete_#{route_singular_name}""delete_#{route_singular_name}"]
        ].each do |path,name|
          next_level.match(path).to_route.name(name)
        end


        parent_keys = (matched_keys == ":id") ? ":#{singular}_id" : matched_keys
        if block_given?
          @@parent_resource.push(singular)
          yield next_level.match("/#{parent_keys}")
          @@parent_resource.pop
        end

        routes
      end