code: protected boolean willAggregateWith(Css first, Css second) {
          Validate.notNull(first, "Css argument cannot be null");
          Validate.notNull(second, "Css argument cannot be null");
          
          // never can aggregate absolute Css values
          if (this.resourcesDao.isAbsolute(first) || this.resourcesDao.isAbsolute(second)) {
              return false;
          }
          
          final String firstFullPath = FilenameUtils.getFullPath(first.getValue());
          final String secondFullPath = FilenameUtils.getFullPath(second.getValue());
          
          return new EqualsBuilder()
              .append(first.getConditional(), second.getConditional())
              .append(first.getMedia(), second.getMedia())
              .append(firstFullPath, secondFullPath)
              .isEquals();
      }
docs: Similar to the {@link #equals(Object)} method, this will return
  true if this object and the argument are "aggregatable".
  
  2 {@link Css} objects are aggregatable if and only if:
  <ol>
  <li>Neither object returns true for {@link #isAbsolute()}</li>
  <li>The values of their "conditional" properties are equivalent</li>
  <li>The values of their "media" properties are equivalent</li>
  <li>The "paths" of their values are equivalent</li>
  </ol>
  
  The last rule mentioned above uses {@link FilenameUtils#getFullPath(String)}
  to compare each object's value. In short, the final file name in the value's path
  need not be equal, but the rest of the path in the value must be equal.
  
  @param second
  @return