diff --git a/yaml/tag_processor_test.go b/yaml/tag_processor_test.go
index 79e9f5f80dc452b099176d922a7c4fc5eda008bf..e54ec041180e1fa31975ea9fdd9e789ebcdc2e2a 100644
--- a/yaml/tag_processor_test.go
+++ b/yaml/tag_processor_test.go
@@ -31,14 +31,34 @@ func TestTagProcessor(t *testing.T) {
 }`}, result)
 	})
 	t.Run("!include", func(t *testing.T) {
-		file, err := testdata.FS.Open("include/include_simple.yaml")
-		require.NoError(t, err)
-		defer file.Close()
+		t.Run("simple", func(t *testing.T) {
+			file, err := testdata.FS.Open("include/include_simple.yaml")
+			require.NoError(t, err)
+			defer file.Close()
 
-		var result any
-		decoder := yaml.NewDecoder(file)
-		err = decoder.Decode(WithTagProcessor(testdata.FS)(&result))
-		require.NoError(t, err)
-		assert.Equal(t, map[string]any{"data": map[string]any{"text": "Hello, World!"}}, result)
+			var result any
+			decoder := yaml.NewDecoder(file)
+			err = decoder.Decode(WithTagProcessor(testdata.FS)(&result))
+			require.NoError(t, err)
+			assert.Equal(t, map[string]any{"data": map[string]any{"text": "Hello, World!"}}, result)
+		})
+		t.Run("with merge", func(t *testing.T) {
+			file, err := testdata.FS.Open("include/include_merge.yaml")
+			require.NoError(t, err)
+			defer file.Close()
+
+			var result any
+			decoder := yaml.NewDecoder(file)
+			err = decoder.Decode(WithTagProcessor(testdata.FS)(&result))
+			require.NoError(t, err)
+			assert.Equal(t, map[string]any{
+				"server": map[string]any{
+					"host": "dev.perx.ru",
+					"port": 3000,
+					"ssl":  true,
+					"tags": []any{"http", "api"},
+				},
+			}, result)
+		})
 	})
 }
diff --git a/yaml/testdata/include/default_server_config.yaml b/yaml/testdata/include/default_server_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..eff5d022e1e6778243499803d37d589a96b813b9
--- /dev/null
+++ b/yaml/testdata/include/default_server_config.yaml
@@ -0,0 +1,4 @@
+host: localhost
+port: 3000
+ssl: true
+<<: !include include/default_server_tags.yaml
\ No newline at end of file
diff --git a/yaml/testdata/include/default_server_tags.yaml b/yaml/testdata/include/default_server_tags.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1f7c1497f5ea652c94b1e21fc48823147d728105
--- /dev/null
+++ b/yaml/testdata/include/default_server_tags.yaml
@@ -0,0 +1 @@
+tags: [ http, api ]
\ No newline at end of file
diff --git a/yaml/testdata/include/include_merge.yaml b/yaml/testdata/include/include_merge.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..894a9a91c0491a56663bb1e831ae9e0802727498
--- /dev/null
+++ b/yaml/testdata/include/include_merge.yaml
@@ -0,0 +1,3 @@
+server:
+  <<: !include include/default_server_config.yaml
+  host: dev.perx.ru
\ No newline at end of file