# File lib/innate/node.rb, line 797
    def update_mapping_shared(paths)
      mapping = {}
      paths.reject!{|path| !File.directory?(path) }

      provides.each do |wish_key, engine|
        wish = wish_key[/(.*)_handler/, 1]
        exts = possible_exts_for(wish)

        paths.reverse_each do |path|
          Find.find(path) do |file|
            exts.each do |ext|
              next unless file =~ ext

              case file.sub(path, '').gsub('/', '__')
              when /^(.*)\.(.*)\.(.*)$/
                action_name, wish_ext, engine_ext = $1, $2, $3
              when /^(.*)\.(.*)$/
                action_name, wish_ext, engine_ext = $1, wish, $2
              end

              mapping[wish_ext] ||= {}
              mapping[wish_ext][action_name] = file
            end
          end
        end
      end

      return mapping
    end