Different ways to define singleton methods in Ruby

As we know from The Philosophy of Ruby, Ruby inherited the Perl philosophy of having more than one way to do the same thing. So that, there are many ways to define singleton methods in Ruby.

##############################################
# Different ways to define singleton methods #
##############################################

def test_singleton_method
  animal = 'dog'

  yield animal

  puts animal.speak
end

#=============================================

test_singleton_method do |dog|
  def dog.speak
    "Woof!"
  end
end

test_singleton_method do |dog|
  dog.instance_eval do
    def speak
      "Woof!"
    end
  end
end

test_singleton_method do |dog|
  class << dog
    def speak
      "Woof!"
    end
  end
end

test_singleton_method do |dog|
  class << dog
    define_method(:speak) do
      "Woof!"
    end
  end
end

test_singleton_method do |dog|
  class << dog
    define_method(:speak, lambda { "Woof!" })
  end
end

test_singleton_method do |dog|
  module SpeakableDog
    def speak
      "Woof!"
    end
  end

  class << dog
    include SpeakableDog
  end
end

test_singleton_method do |dog|
  module SpeakableDog
    def speak
      "Woof!"
    end
  end

  dog.extend SpeakableDog
end

#================ Ruby 1.9.2 ====================

test_singleton_method do |dog|
  module SpeakableDog
    def speak
      "Woof!"
    end
  end

  dog.singleton_class.send(:include, SpeakableDog)
end

test_singleton_method do |dog|
  dog.singleton_class.class_eval do
    def speak
      "Woof!"
    end
  end
end

test_singleton_method do |dog|
  dog.singleton_class.send(:define_method, :speak) do
    "Woof!"
  end
end

test_singleton_method do |dog|
  dog.define_singleton_method(:speak) do
    "Woof!"
  end
end

test_singleton_method do |dog|
  dog.singleton_class.send(:define_method, :speak, lambda { "Woof!" })
end

Do you get any other ways to define singleton methods?