OnCollisionEnter2D hit object twice before action

Hello,
I’m working on a script that destroys a prefab object when it collides twice. Now my problem is, the DashBox is a tag on a prefab. It occurs often in one scene. But if I collide once with a DashBox and move my player to another DashBox in the scene and collide with it, the 2nd DashBox gets destroyed. Logically that makes sense, but this is not what I want. I cannot wrap my head around a answer for the solution, to solve this. Does anyone have an idea? Thanks.

	private int count = 2;

	void OnCollisionEnter2D(Collision2D coll) 
	{
		if (coll.gameObject.tag == "DashBox") {
			count = count - 1;
			print (count);
		} 
		if (count == 0)
		{
			Destroy (coll.gameObject);
			count = 2;
		}

You can define an exposed variable ‘life’ to each one of your DashBoxes, like this:

var life : int = 2;

Then, when you check for a collision with a DashBox, simply decrement its life and check for its death:

if (coll.gameObject.tag == "DashBox") {
   coll.GetComponent(ScriptAssignedToDashBoxObject).life--;
}
if (coll.GetComponent(ScriptAssignedToDashBoxObject).life <= 0){
   Destroy (coll.gameObject);
}

(it would be better to include the death control directly into the DashBox’s logic, but - making it easy - it should work as well).

UPDATE: As I said, it’s better to keep the logic separated, for each single object. So, in the collider one, just do this:

void OnCollisionEnter2D(Collision2D coll){
   if (coll.gameObject.tag == "DashBox") {
      coll.GetComponent(ScriptAssignedToDashBoxObject).life--;
   }
}

and, in the ‘ScriptAssignedToDashBoxObject’ script:

function Update(){    //Or FixedUpdate, depends on your needs
   if (life <= 0){
      Die();
   }
}

function Die(){
   //here you can put all the logic derived from the death event.
   //Like updating score, drop bonuses, etc...
   Destroy(gameObject);
}