ランダムでダンジョンのマップを作成しようとしています。

画像の説明をここに入力

上の画像のように2つの部屋があり、その間を、2マスの幅がある通路でつなぎます。

画像の説明をここに入力

通路の始点、終点や折れ曲がる地点はランダムで決まります。
さらに通路を追加します。

画像の説明をここに入力

二度目以降に通路を追加する際、以前に引いた通路を気にせずに引くので、以前に引いた通路と一部が重なったり、隣り合ったりする場合があります。

こうして2、3回通路を引いた後で、通路の幅がどの場所でも2マスになるように、自動的に通路を整形したいです。
具体的には、以下の2つの条件を満たすようにしたいです。

1.通路内に3x3マスの空間を含まないこと。
2.2x2マスの大きさのキャラクターが、左部屋のどの出口から出ても、右部屋に行けること。また、右部屋のどの出口から出ても、左部屋に行けること。

2x2マスの大きさのキャラクターは、上下左右斜め方向に1マスずつ動きます。
ただし下の画像のような地形を、左下->右上、右上->左下に移動することはできません。
画像の説明をここに入力

どのようなアルゴリズムで整形すれば良いでしょうか?

追記
部屋と通路のエリアは区別されます。
通路部分の矩形範囲が与えられて、その中で通路を整形したいです。

プレイヤーは1マスの大きさですが、敵キャラクターに、1マスのものと2マスのものがいます。