MatrixCase as a new function ??

Mathematica has excellent ways to manipulate Sequences.
But it has no such methods for dealing with arrays

a = RandomInteger[10, {4, 4}];

ReplaceList[a, {___, {e___, x_, y_, ___}, {e1___, x1_, 
     y1_, ___}, ___} /; Length[{e}] == Length[{e1}] -> 
  MatrixForm[{{x, y}, {x1, y1}}]]

Can we simply have a function like this

MatrixCases[Matrix, {{_, _}, {_, _}}]

General rule. that give us the same result or extract all patterns from the array.