To clarify the question, consider this. I'm not asking for something that is just an "If then" statement. I want something similar to rule that matches structure and can also behave like If in the Wolfram language. For the example, I'll simply call the function "When" and it will be similar to ReplaceAll:
In[1] := B = {};
In[2] := When[_Integer*> Append[B, _Integer^2]][{1,2,3,Pi,E,5}]
Out[2] := {1,4,9,25}
In[3] := B
Out[3] := {1,4,9,25}
In the above example, In[2] can be read as "When I see an integer I will append unto B the integer squared". As can be seen the list B is now modified, and these actions aren't exclusively to appending, I'm talking about a function that evaluates code when something is true or when structure is matched, and can even perform other tasks:
In[1] := B = {1,2,3,4,5,Sin[6]};
In[2] := X = 13;
In[3] := C = {}
In[4] := When[{_[u_] *> Append[C, Sin[u+1]],_u>3||_u <= 2 *> Append[C,Cos[u]]][B];
In[5] := C
Out[5] := {Sin[7], Cos[1], Cos[2], Cos[4], Cos[5]}
When evaluating the line In[4] it can be read as "When I see something inside a function I will append unto C Sine of the value inside some function added to 1 and then when a value is less than or equal to two I will append unto C the Cosine of that value. Where the function When threads through the same list twice with the given rules, using *> to specify that it is an action to perform versus an object/structure to replace. This would allow great freedom for Rule based programming considering this will generalize what tasks can be performed and when actions, such as merely appending, replacing, or just giving a "See this? Do this."