How to compare a re-writable 4 bit value to a given 4 bit input in Verilog?
A few points to make. 

Firstly for Verilog you should be using zero-indexing. e.g. wire [3:0] imAFourBitWire.



Second, if the body of a case statement takes up more than one line, you need to wrap it in begin-end statements (in fact liberal use of this is a good habit to get into). E.g.

case(y)
   SOMETHING: begin
      aThing = bThing;
      cThing = anotherThing;
   end
   ...
endcase


Notice how multi-line is wrapped in begin-end.

The same goes for if and if-else statements. Yes you can omit the begin-end, but it doesn't mean you should, especially if you are starting out with the language. It doesn't take long to add 8 characters, but it makes the code structure far easier to follow.



Thirdly, this line:

passwordREG = 4'b0110; // IM TRYING TO SET THE DEFAULT PASSWORD HERE


You need to use an assign statement if you want to assign a value to a wire.



This then leads on to:

passwordREG = INPUTS; // NOTE IN THIS LINE IM TRYING TO REWRITE THE REGISTERED PASSWORD


But you declared passwordREG as a wire, not a reg. You are violating two rules here:


You cannot assign a value to a wire with a procedural assignment (e.g. = in an always block), only using continuous assignment (assign statements)
You can only assign a wire with more than one assignment. You've already got passwordREG = 4'b0110; further up.




Next, using parameter[3:1] is no different from parameter. Setting the width of a parameter like this has no effect. Instead the width is the width of whatever value you are setting - e.g. parameter something=3'b110 would create a 3-bit parameter.



Finally, again from a stylistic standpoint, while you can declare multiple parameters like you've done, i.e.

parameter[3:1]

// Binary state values

START = 3'b000, 
AGAIN = 3'b001, 
ALARM = 3'b010, 
CHANGE_OLD = 3'b011, 
OPEN_DOOR = 3'b100, 
CHANGE_OLD_AGAIN = 3'b101, 
CHANGE_NEW = 3'b110;


I would advise not doing so, it makes the code harder to follow and mistakes can start to creep in. Instead use:

// Binary state values

parameter START = 3'b000;
parameter AGAIN = 3'b001; 
parameter ALARM = 3'b010; 
parameter CHANGE_OLD = 3'b011;
parameter OPEN_DOOR = 3'b100; 
parameter CHANGE_OLD_AGAIN = 3'b101;
parameter CHANGE_NEW = 3'b110;


It doesn't add much more in the way of effort, but it will some day save you a load of time debugging the code.