Mix Shaders Question -- Multiple Textures, Recolorable?

I’m pretty new to writing shaders so I’m having some difficulty making something work. Basically, as I’ve shown in this diagram:

I want to be able to get a final texture that’s a combination of a base color, a flat-color pattern that can be set to whatever color, and a fur texture that overlays everything. I cannot figure out how I should be recoloring the layered-on texture, nor if I should be doing this via a shader or by modifying a new texture outside the shader. I’ve tried messing around with mix shaders, but I just can’t figure out how to get the results I want. I want to be able to do this with multiple layered-on patterns with colors defined by external code. Any help would be greatly appreciated!

Shader “Custom/Shader” {
Properties {
_BaseColor (“Base Color”, Color) = “white”
_PatternColor (“Pattern Color”, Color) = “white”
_Pattern (“Pattern”, 2D) = “white” {}
_Overlay (“Overlay”, 2D) = “white” {}
}
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 3.0
#include “UnityCG.cginc”

            struct v2f {
                float4 pos : SV_POSITION;
                float2 uv : TEXCOORD0;
            };

            v2f vert (appdata_base v) {
                v2f o;
                o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
                o.uv = v.texcoord.xy;
                return o;
            }

            sampler2D _Pattern;
            float4 _Pattern_ST;
            sampler2D _Overlay;
            float4 _Overlay_ST;
            fixed4 _BaseColor;
            fixed4 _PatternColor;

            half4 frag (v2f i) : SV_Target
            {
                half4 c = lerp (_BaseColor, _PatternColor, tex2D (_Pattern, TRANSFORM_TEX (i.uv, _Pattern)).r) * tex2D (_Overlay, TRANSFORM_TEX (i.uv, _Overlay));
                c.a = 1.0;
                return c;
            }
            ENDCG
        }
    }
}

This should fit your original proposal. If you need to add more textures, etc. you can dissect the elements of this shader,