A valid service attribute to satisfy the declaration 'self:service.name' could not be found
# This is a (Bug Report)

## Description

For bug reports:
* What went wrong?

I'm trying to use dynamic variables in `serverless.yml` and it fails.
Basically, I have the following in my `provider`:

```
  environment:
    SERVICE_NAME: ${self:service.name}
    DYNAMODB_TABLE: ${self:service.name}-test
```
The `SERVICE_NAME` is correctly resolved **IF** I comment the `DYNAMODB_TABLE: "${self:service.name}-test"`, otherwise it fails with the following stack trace.

If I use `${self:service.name}` alone it works, but if I add some string after, then it fails: `${self:service.name}-test`

* What did you expect should have happened?

Resolving variables correctly

* What stacktrace or error message from your provider did you see?

```bash
➜  simulator-feedback git:(master) ✗ sls print
Serverless: Load command run
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command create
Serverless: Load command install
Serverless: Load command package
Serverless: Load command deploy
Serverless: Load command deploy:function
Serverless: Load command deploy:list
Serverless: Load command deploy:list:functions
Serverless: Load command invoke
Serverless: Load command invoke:local
Serverless: Load command info
Serverless: Load command logs
Serverless: Load command login
Serverless: Load command logout
Serverless: Load command metrics
Serverless: Load command print
Serverless: Load command remove
Serverless: Load command rollback
Serverless: Load command rollback:function
Serverless: Load command slstats
Serverless: Load command plugin
Serverless: Load command plugin
Serverless: Load command plugin:install
Serverless: Load command plugin
Serverless: Load command plugin:uninstall
Serverless: Load command plugin
Serverless: Load command plugin:list
Serverless: Load command plugin
Serverless: Load command plugin:search
Serverless: Load command emit
Serverless: Load command config
Serverless: Load command config:credentials
Serverless: Load command rollback
Serverless: Load command rollback:function
Serverless: Load command webpack
 
 Serverless Warning --------------------------------------
 
  A valid service attribute to satisfy the declaration 'self:service.name' could not be found.
 
 
 Serverless Warning --------------------------------------
 
  A valid service attribute to satisfy the declaration 'self:service.name' could not be found.
 
 
  Serverless Error ---------------------------------------
 
  Trying to populate non string value into a string for variable ${self:service.name}. Please make sure the value of the property is a string.
 
  Stack Trace --------------------------------------------
 
ServerlessError: Trying to populate non string value into a string for variable ${self:service.name}. Please make sure the value of the property is a string.
    at Variables.populateVariable (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:156:13)
    at pendingMatches.push.pendingMatch.then.matchedValue (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:124:21)
    at runCallback (timers.js:789:20)
    at tryOnImmediate (timers.js:751:5)
    at processImmediate [as _immediateCallback] (timers.js:722:5)
From previous event:
    at property.match.forEach (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:122:40)
    at Array.forEach (<anonymous>)
    at Variables.populateProperty (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:111:41)
    at forEachLeaf (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:85:14)
    at forEachLeaf (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:75:14)
    at addContext (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:62:42)
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13392:38
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:4917:15
    at baseForOwn (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:3002:24)
    at Function.mapValues (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13391:7)
    at forEachLeaf (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:73:37)
    at addContext (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:62:42)
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13392:38
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:4917:15
    at baseForOwn (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:3002:24)
    at Function.mapValues (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13391:7)
    at forEachLeaf (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:73:37)
    at addContext (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:62:42)
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13392:38
    at /Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:4917:15
    at baseForOwn (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:3002:24)
    at Function.mapValues (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/node_modules/lodash/lodash.js:13391:7)
    at forEachLeaf (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:73:37)
    at Variables.populateObject (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:79:5)
    at Variables.populateService (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/classes/Variables.js:47:17)
    at Serverless.run (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/lib/Serverless.js:89:27)
    at serverless.init.then (/Users/vadorequest/.nvm/versions/node/v8.9.4/lib/node_modules/serverless/bin/serverless:42:50)
    at <anonymous>
 
  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Forums:        forum.serverless.com
     Chat:          gitter.im/serverless/serverless
 
  Your Environment Information -----------------------------
     OS:                     darwin
     Node Version:           8.9.4
     Serverless Version:     1.26.0

```

Similar or dependent issues:
* https://github.com/serverless/serverless/issues/3714

## Additional Data

* ***Operating System***: MacOS X