Why the watch callback is called upon browser reload or angular route change even when the oldvalue and newvalue are the same. For example 

```
$scope.test = "blah"; 
$scope.watch("test", function(new,old){
  console.log(new === old);
} 

```

You will see true in console log any time you reload the page or the route changed away and back to that controller. I had to add a guard inside the callback to avoid unnecessary callbacks. Is there anything I did wrong?