diff --git a/lib/scorpio/schema.rb b/lib/scorpio/schema.rb
index <HASH>..<HASH> 100644
--- a/lib/scorpio/schema.rb
+++ b/lib/scorpio/schema.rb
@@ -26,6 +26,19 @@ module Scorpio
       end
     end
 
+    def match_to_object(object)
+      object = object.content if object.is_a?(Scorpio::JSON::Node)
+      if schema_node && schema_node['oneOf']
+        matched = schema_node['oneOf'].map(&:deref).map do |oneof|
+          oneof_matched = self.class.new(oneof).match_to_object(object)
+          if oneof_matched.validate(object)
+            oneof_matched
+          end
+        end.compact.first
+      end
+      matched || self
+    end
+
     def subschema_for_index(index)
       if schema_node['items'].is_a?(Scorpio::JSON::ArrayNode)
         if index < schema_node['items'].size
Scorpio::Schema#match_to_object to replace match_schema functionality removing from SchemaObjectBase module #[]