diff --git a/lib/matcher.dart b/lib/matcher.dart
index 72918aa..20ed254 100644
--- a/lib/matcher.dart
+++ b/lib/matcher.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 /// Support for specifying test expectations, such as for unit tests.
+export 'src/alternatives_matcher.dart';
 export 'src/core_matchers.dart';
 export 'src/custom_matcher.dart';
 export 'src/description.dart';
diff --git a/lib/src/alternatives_matcher.dart b/lib/src/alternatives_matcher.dart
new file mode 100644
index 0000000..2b2045b
--- /dev/null
+++ b/lib/src/alternatives_matcher.dart
@@ -0,0 +1,19 @@
+import 'equals_matcher.dart';
+import 'interfaces.dart';
+import 'operator_matchers.dart';
+
+/// Matches expected or any of the given alternatives.
+///
+/// Example:
+/// ```dart
+///  expect(2, alternatives(1, {2})) // returns true
+/// ```
+///
+/// Especially helpful in enabling the setup of alternative expected values
+/// before breaking changes, to avoid test failures in migrations.
+Matcher alternatives(
+  Object expected, [
+  Set<Object>? alternatives,
+  Matcher Function(Object) matcher = equals,
+]) =>
+    anyOf([expected, ...?alternatives].map(matcher).toList());
diff --git a/test/alternatives_matcher_test.dart b/test/alternatives_matcher_test.dart
new file mode 100644
index 0000000..2563165
--- /dev/null
+++ b/test/alternatives_matcher_test.dart
@@ -0,0 +1,35 @@
+import 'package:test/test.dart';
+
+void main() {
+  final alternativeMatcher = alternatives(
+    'oldCase',
+    {'alternative', 'alternative2'},
+  );
+
+  test('Equals', () {
+    expect('oldCase', alternativeMatcher);
+  });
+
+  test('Equals alternative', () {
+    expect('alternative', alternativeMatcher);
+    expect('alternative2', alternativeMatcher);
+  });
+
+  test('Equals fails', () {
+    expect(
+      () => expect('newCaseNotInAlternatives', alternativeMatcher),
+      throwsA(isA<TestFailure>()),
+    );
+  });
+
+  test('Pass matcher as argument', () {
+    expect([1, 2, 3, 3], alternatives(3, {2}, containsOnce));
+  });
+
+  test('Pass matcher as argument and fail', () {
+    expect(
+      () => expect([1, 2, 3, 3], alternatives(4, {}, containsOnce)),
+      throwsA(isA<TestFailure>()),
+    );
+  });
+}
