Given how this is implemented it seems like ordering of your blueprint becomes important e.g.:

If I had this blueprint it works:
```php
array(
  'class' => Phactory::has_one('Class'),
  'dep1' => Phactory::uses('class.value'),
  'dep2' => Phactory::uses('dep1.value'),
);
```

But if I reordered it slightly it wouldn't work:

```php
array(
  'class' => Phactory::has_one('Class'),
  'dep2' => Phactory::uses('dep1.value'),
  'dep1' => Phactory::uses('class.value'),
);
```

That seems less than ideal. I'll take a shot at fixing it up tonight. Also testing over this kind of thing would be great.