diff --git a/alib2data/src/automaton/common/State.cpp b/alib2data/src/automaton/common/State.cpp
index f9fc60f8ea7e90eea146b605d8e56854034c0ee0..93114c833bae6552676b0293dd6b5510c86ef299 100644
--- a/alib2data/src/automaton/common/State.cpp
+++ b/alib2data/src/automaton/common/State.cpp
@@ -14,6 +14,9 @@ namespace automaton {
 State::State(label::Label name) : name(std::move(name)) {
 }
 
+State::State(label::Label name1, label::Label name2) : name ( label::labelFrom ( std::move ( name1 ), std::move ( name2 ) ) ) {
+}
+
 State::State(int number) : name(label::labelFrom(number)) {
 }
 
diff --git a/alib2data/src/automaton/common/State.h b/alib2data/src/automaton/common/State.h
index 0f1f76be0d70c83d1e97f1cc5b8b4f8bfcf8984a..64820f1727861482ed6e4645ed0b3a455b7c3ee3 100644
--- a/alib2data/src/automaton/common/State.h
+++ b/alib2data/src/automaton/common/State.h
@@ -24,6 +24,7 @@ private:
 	label::Label name;
 public:
 	explicit State(label::Label name);
+	explicit State(label::Label name1, label::Label name2);
 	explicit State(int number);
 	explicit State(int number1, int number2);
 	explicit State(char character);
diff --git a/alib2data/src/label/Label.cpp b/alib2data/src/label/Label.cpp
index 273c65c303c2d67a1bde90eeab2aba3b55d13ed9..dc96527f906867ba3b3099dad71fc90de6bc75f6 100644
--- a/alib2data/src/label/Label.cpp
+++ b/alib2data/src/label/Label.cpp
@@ -43,6 +43,16 @@ label::Label labelFrom ( int number1, int number2 ) {
 	};
 }
 
+label::Label labelFrom ( label::Label label1, label::Label label2 ) {
+	return label::Label {
+			label::LabelPairLabel {
+				std::make_pair ( std::move ( label1 ),
+						 std::move ( label2 )
+				)
+			}
+	};
+}
+
 label::Label labelFrom ( char character ) {
 	return label::Label {
 			   label::PrimitiveLabel {
diff --git a/alib2data/src/label/Label.h b/alib2data/src/label/Label.h
index e4541ad332c8d0409414c67ba3df81bedaad3019..0949a5b5e607d9851447b53767bd56c7e5b05a8a 100644
--- a/alib2data/src/label/Label.h
+++ b/alib2data/src/label/Label.h
@@ -30,6 +30,7 @@ public:
 	}
 };
 
+label::Label labelFrom ( label::Label label1, label::Label label2 );
 label::Label labelFrom ( int number );
 label::Label labelFrom ( int number1, int number2 );
 label::Label labelFrom ( char character );